|
This page last changed on Feb 22, 2011 by kgomes.
As a part of the upgrade and configuration of our software development infrastructure at MBARI, we installed a continuous integration server. Here is a diagram of the overall structure of the software development infrastructure.
For the build server, the goal was to install Atlassian's Bamboo, Fisheye and Crucible products. In addition, we installed the SeleniumRC server to help in the automatic running of web client unit tests. Here are the steps:
- Install Java. jpackage-utils was already installed, so I went to java.sun.com and downloaded the jdk-6u23-linux-x64-rpm.bin.
- I had to run 'chmod a+x jdk-6u23-linux-x64-rpm.bin' to make sure I could execute the package.
- I then ran './jdk-6u23-linux-x64-rpm.bin'
- This expanded out to several .rpm files. In order to make sure I don't hit permissions issues, I moved all those files to the /tmp/java directory so I could run the install the rpm files using sudo.
- Then I ran 'sudo rpm -Uvh jdk-6u23-linux-amd64.rpm'
- Pat did something here to integrate it into the alternatives as I did not have permissions. The bottom line is that java got installed.
- I downloaded the Bamboo-3.0 standalone installation from atlassian to my Bamboo folder on my desktop.
- I downloaded the jtds dist zip file (1.2.5) to the Bamboo folder on my desktop.
 | JTDS is already in Bamboo
It turns out the Bamboo install already has jtds 1.2.2 installed so you don't need to do this unless you want to upgrade it. |
- I created the /data/Bamboo directory to house the Bamboo working files and created the /opt/Bamboo to house the application itself.
- I unzipped and untarred the Bamboo download into the /opt directory which put it into the Bamboo directory I created.
- I cd'd into /opt/Bamboo/webapp/WEB-INF/classes and then edited the bamboo-init.properties file. In the file I uncommented the bamboo.home line and set it to:
- I then started the server by cd'ing to /opt/Bamboo and running ./bamboo.sh start
- I then browsed to http://localhost:8085 and was prompted to enter the license key.
- I took the server ID provided and went to the Atlassian site and entered it as the id for a new license key.
- I grabbed the generated key and stuck it back into the localhost page asking for it.
- I then clicked on "Custom Installation" to configure things manually. The only things I changed are below:
- I changed the name field to "MBARI Bamboo"
- I changed the Base URL to "http://build-server.shore.mbari.org:8085"
- I chose an external database and chose Microsoft SQL Server 2005/2008
- I set the jdbc url to: jdbc:jtds:sqlserver://equinox.shore.mbari.org:51001/Bamboo;domain=SHORE
- The user was DB_Collaboration
- password is well, it just is.
- Clicked on continue and Bamboo setup the database
- I then chose to Create a new Bamboo home
- I used my MBARI username and password for the administration account until I can get it hooked up to Crowd.
- I then shutdown the Bamboo installation and configured it to use SSL per the instructions here. Cathy setup the SSL keystore in /usr/local/keystore/keystore.jks and I used that in the jetty.xml configuration file. I also had to follow the instructions and edit the bamboo.sh file to use the jetty.xml (it does not by default).
 |
Note that I also uncomented these lines in the 8085 port connector which disabled the 8085 port on all but localhost IP addresses to make sure people have to use the SSL connection.
|
- I restarted Bamboo to verify that the SSL connection works.
- I then shutdown the Bamboo installation and followed the instructions here to integrate it with Crowd. Below are the specific things I had to do for our installation
- In order to keep the default groups of bamboo-admin and bamboo-users out of our LDAP, I created those two groups in the MBARI Crowd directory and then created a bambooadmin account that belongs to both. That meets the requirements of Bamboo and does not force our I.S. group to have to have bamboo-admin and bamboo-user groups in our LDAP.
- The rest of the configuration was pretty straightforward except for the fact that Crowd is now using SSL and the connection between build-server and crowd was over SSL. This caused much grief as the connection was not trusted so I finally found some instructions on how to get around that here. After I ran the program attached and installed the keystore in the java jre/lib/security directory, all was well and I could authenticate into Bamboo using MBARI's LDAP and MBARI Crowd directory.
- The last step was to get all this running as a different user.
- I shutdown bamboo.
- I then did a 'chown -R root:root /opt/Bamboo' to make sure that the default ownership of all the files was root
- I did a 'chown -R DB_Collaboration:DB_Collaboration /data/Bamboo' to make sure the DB_Collaboration account owned all the bamboo data.
- I then went in to the /opt/Bamboo directory and gave ownership of the following files and directories to DB_Collaboration.
- atlassian-bamboo.log
- logs
- /opt/Bamboo (so the bamboo.pid file can be created)
- I then created the /etc/init.d/bamboo script:
- I made it executable by all and changed the ownership to root:root
- I then ran the following to configure it to start:
- I then downloaded the selenium rc server jar file, put it in the /opt/selenium directory and created the following script and put it in /etc/init.d/selenium
- I then ran sudo /sbin/chkconfig --add selenium
- Then sudo /sbin/service selenium start
 |
I am having trouble getting it to start on reboot. Works fine from the command line, but not from reboot. |
- I then downloaded maven and ant and unpacked them both to /opt and create /opt/maven and /opt/ant symbolic links to them respectively.
- I then created two scripts java-dev.csh and java-dev.sh and put them in the /etc/profile.d directory and made them exectuable so that ant and maven were added to the default paths.
- java-dev.csh
- java-dev.sh
|